package com.hqd.ch03.v50.core.metrics;

public interface ApplicationStartup {
    ApplicationStartup DEFAULT = new DefaultApplicationStartup();
    /**
     * Default "no op" {@code ApplicationStartup} implementation.
     * <p>This variant is designed for minimal overhead and does not record data.
     */

    /**
     * Create a new step and marks its beginning.
     * <p>A step name describes the current action or phase. This technical
     * name should be "." namespaced and can be reused to describe other instances of
     * the same step during application startup.
     *
     * @param name the step name
     */
    StartupStep start(String name);

}